package sort;

import java.util.Arrays;

/**
 * @Classname SelectSort
 * @Author happytaohaha
 * @Date 2020/2/28
 * @Description 选择排序
 * 选择排序的复杂度也是 O(n^2)
 * 但是选择排序的交换次数比冒泡排序要少的多，因此当交换的操作时间比较大时，请选择选择排序
 * 不稳定 ：相对位置会变
 */
public class SelectSort {

    public static int[] selectSort(int[] array) {
        int len = array.length;
        int index = 0;
        int temp;
        for (int i = 0; i < len; i++) {
            temp = array[i];

            for (int j = i+1; j < len; j++) {
                 if(array[j] <temp){
                     temp = array[j];
                     index = j;
                 }
            }
            if(index != -1){
                array[index] = array[i];
                array[i] = temp;
            }
            index = -1;
        }
        return array;
    }

    public static void main(String[] args) {
        System.out.println(Arrays.toString(selectSort(new int[]{5, 4, 3, 2, 1})));
    }
}
